Ask AI about this page

Introduction

The Header component is a sticky, responsive application header designed to sit at the top of your main content area. It provides a consistent navigation bar with mobile menu toggle integration and seamless integration with the sidebar layout system.

Installation

this component cames with the layout component Go There

Once installed, you can use the <x-ui.layout.header> component within your layout's main area.

Usage

Basic Header

The simplest implementation with a navbar and user actions:

<x-ui.layout.main>
    <x-ui.layout.header>
        <x-ui.navbar class="flex-1">
            <x-ui.navbar.item icon="home" label="Home" href="/" />
            <x-ui.navbar.item icon="cog-6-tooth" label="Settings" href="/settings" />
        </x-ui.navbar>
        
        <div class="flex gap-x-3 items-center">
            <x-ui.avatar size="sm" src="/avatar.png" circle />
            <x-ui.theme-switcher variant="inline" />
        </div>
    </x-ui.layout.header>

    <div class="p-6">
        <!-- Your page content -->
    </div>
</x-ui.layout.main>

Header with Navigation Only

A simple header focused on navigation:

<x-ui.layout.header>
    <x-ui.navbar class="flex-1">
        <x-ui.navbar.item icon="home" label="Dashboard" href="/dashboard" />
        <x-ui.navbar.item icon="chart-bar" label="Analytics" href="/analytics" />
        <x-ui.navbar.item icon="users" label="Team" href="/team" />
        <x-ui.navbar.item icon="folder" label="Projects" href="/projects" />
    </x-ui.navbar>
</x-ui.layout.header>

Header with Search and Actions

Add search functionality and action buttons:

<x-ui.layout.header>
    <x-ui.navbar class="flex-1">
        <x-ui.navbar.item icon="home" label="Home" href="/" />
        <x-ui.navbar.item icon="document-text" label="Docs" href="/docs" />
    </x-ui.navbar>

    <div class="flex items-center gap-x-4">
        <x-ui.input 
            placeholder="Search..." 
            icon="magnifying-glass"
            class="w-64"
        />
        <x-ui.button variant="solid" size="sm" icon="plus">
            New Project
        </x-ui.button>
        <x-ui.avatar src="/mohamed.png" circle size="sm" />
    </div>
</x-ui.layout.header>

Mobile Menu Toggle

the toggler appears automatically next to the brand on larger screens. On mobile, add it manually inside your header.

<x-ui.layout.header>
    <x-ui.sidebar.toggle class="md:hidden" />
    <!-- navbar -->
</x-ui.layout.header>

Use md:hidden to show it only on mobile. The variant handles everything else automatically on larger screens.

Component Props

Header Component

Prop Name Type Default Required Description
slot mixed '' Yes Header content (navbar, actions)

Component Structure

The header component consists of:

  • Main Container: <x-ui.layout.header> - The header wrapper with border and padding
  • Mobile Toggle: Auto-included button for mobile sidebar control (internal)
  • Content Area: Flexible space for navigation and actions

Header Height

needs to change the header height ? Visit Docs

Advanced Examples

Using Dropdown Menus

<x-ui.layout.header>
    <x-ui.sidebar.toggle class="md:hidden"/>
    <x-ui.navbar class="flex-1 hidden lg:flex">
        <x-ui.navbar.item
            icon="home"
            label="Home" 
            href="#"
        />
        <x-ui.navbar.item 
            icon="cog-6-tooth" 
            label="Settings" 
            badge="3"
            badge:color="orange"
            badge:variant="outline"
            href="#"                    
        />
        <x-ui.dropdown>
            <x-slot:button>
                <x-ui.navbar.item 
                    icon="shopping-bag"
                    icon:variant="min" 
                    label="Store" 
                />
            </x-slot:button>
            
            <x-slot:menu>
                <x-ui.dropdown.item icon="shopping-bag" href="#">
                    Products
                </x-ui.dropdown.item>
                <x-ui.dropdown.item icon="receipt-percent" href="#">
                    Orders
                </x-ui.dropdown.item>
                <x-ui.dropdown.item icon="users" href="#">
                    Customers
                </x-ui.dropdown.item>
                <x-ui.dropdown.item icon="ticket" href="#">
                    Discounts
                </x-ui.dropdown.item>
            </x-slot:menu>
        </x-ui.dropdown>
    </x-ui.navbar>

    <div class="flex ml-auto gap-x-3 items-center">
            <x-ui.dropdown position="bottom-end">
            <x-slot:button class="justify-center">
                <x-ui.avatar size="sm" src="/iman.png" circle alt="Profile Picture" />
            </x-slot:button>

            <x-slot:menu class="w-56">
                <x-ui.dropdown.group label="signed in as">
                    <x-ui.dropdown.item>
                        iman@gmail.com
                    </x-ui.dropdown.item>
                </x-ui.dropdown.group>

                <x-ui.dropdown.separator />

                <x-ui.dropdown.item href="#" wire:navigate.live>
                    Account
                </x-ui.dropdown.item>

                <x-ui.dropdown.separator />

                <form
                    action="#"
                    method="post"
                    class="contents"
                >
                    @csrf
                    <x-ui.dropdown.item as="button" type="submit">
                        Sign Out
                    </x-ui.dropdown.item>
                </form>

            </x-slot:menu>
        </x-ui.dropdown>

        <x-ui.theme-switcher variant="inline" />
    </div>
</x-ui.layout.header>

Conditional Header Content

<x-ui.layout.header>
    <x-ui.navbar class="flex-1">
        <x-ui.navbar.item icon="home" label="Home" href="/" />
        
        @auth
            <x-ui.navbar.item icon="folder" label="My Projects" href="/projects" />
            <x-ui.navbar.item icon="star" label="Favorites" href="/favorites" />
        @endauth
    </x-ui.navbar>

    <div class="flex items-center gap-x-3">
        @auth
            <x-ui.avatar src="{{ auth()->user()->avatar }}" circle size="sm" />
        @else
            <x-ui.button variant="primary" href="/login">Sign In</x-ui.button>
        @endauth
    </div>
</x-ui.layout.header>

© SheafUI Copyright 2024-2025. All rights reserved.